home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1993 / Internet Info CD-ROM (Walnut Creek) (1993).iso / standards / CCITT / 1992 / X / x501_2.asc < prev    next >
Encoding:
Text File  |  1993-07-15  |  45.8 KB  |  1,279 lines

  1.                The drawings contained in this Recommendation have been done in AUTOCAD
  2.                VALUENOTATION ::=
  3.                   value(VALUE OBJECT IDENTIFIER)
  4.                SubclassOf ::=
  5.                   "SUBCLASS OF" Subclasses |
  6.                   empty
  7.                Subclasses ::=    Subclass | subclass ","
  8.                          Subclasses
  9.                Subclass ::=      value (OBJECT-CLASS)
  10.                MandatoryAttributes ::=
  11.                   "MUST CONTAIN {"Attributes"}" | empty 
  12.                OptionalAttributes ::=
  13.                   "MAY CONTAIN {"Attributes"}" | empty 
  14.                Attributes        ::= AttributeTerm | AttributeTerm "," Attributes
  15.                AttributeTerm     ::= Attribute | AttributeSet
  16.                Attribute   ::= value(ATTRIBUTE)
  17.                AttributeSet            ::= value(ATTRIBUTE-SET)
  18.                END
  19.                The correspondence between the  parts  of  the  definition,  as  listed  in
  20.           9.4.1, and the various pieces of the notation introduced by  the  macro,  is  as
  21.          follows:
  22.                a)  the object identifier to the object class is the value supplied in the
  23.                   value assignment of the macro;
  24.                b)  the superclasses of which this object class is a  subclass  are  those
  25.                   identified by the SubclassOf production, i.e. that following  "SUBCLASS
  26.                   OF";
  27.                c)  the mandatory attributes are those identified by the  list  of  object
  28.                   identifiers produced by the MandatoryAttributes production, i.e.  those
  29.                   following "MUST CONTAIN";
  30.                d)  the optional attributes are those identified by  the  list  of  object
  31.                   identifiers produced by the OptionalAttributes production,  i.e.  those
  32.                   following "MAY CONTAIN".
  33.                Note 1 - The object identifiers in  c)  and  d)  identify  both  individual
  34.          attributes and sets of attributes (see 9.4.7). The effective list in  both  cases
  35.          is the set union of these. If an attribute appears in both the mandatory set  and
  36.          the optional set, it shall be considered mandatory.
  37.                Note 2 -  The  macro  is  used  in  defining  selected  object  classes  in
  38.          Recommendation X.521.
  39.                Should all of the pieces of notation introduced by the macro and  described
  40.          in b), c), and d) above be empty, the resulting notation ("OBJECT-CLASS") can  be
  41.          used to denote any possible object class.
  42.          9.4.7  An  attribute  set  is  a  set  of  attributes  identified  by  an  object
  43.          identifier.  The definition of an attribute set involves:
  44.                a)  assigning an object identifier to the set;
  45.                b)  listing the object identifiers of the attributes and  other  attribute
  46.                   sets whose members together form the set.
  47.                The following ASN.1 macro may (but need not) be used to  define  a  set  of
  48.          attributes for use with the OBJECT-CLASS macro:
  49.                ATTRIBUTE-SET-MACRO ::=
  50.                   BEGIN
  51.                   TYPE NOTATION ::= "CONTAINS" {"Attributes"}" | empty
  52.                   VALUE NOTATION ::= value(VALUE OBJECT IDENTIFIER)
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.          PAGE14  Fascicle VIII.8 - Rec. X.501
  71.  
  72.                   Attributes ::=
  73.                   AttributeTerm | AttributeTerm "," Attributes
  74.                AttributeTerm     ::=  Attribute | AttributeSet
  75.                Attribute   ::=  value(ATTRIBUTE)
  76.                AttributeSet            ::=  value(ATTRIBUTE-SET)
  77.                END
  78.                The correspondence between the parts of the definition of an attribute  set
  79.          and the notation introduced by the macro is as follows:
  80.                a)  the object identifier assigned to  the  attribute  set  is  the  value
  81.                   supplied in the value assignment of the macro;
  82.                b)  the set of attributes comprising the attribute set is that  formed  by
  83.                   the set union of the attributes and sets of  attributes  identified  by
  84.                   the Attributes production, i.e. following "CONTAINS".
  85.                Should the "empty" alternative of the notation be selected,  the  resulting
  86.          notation ("ATTRIBUTE- SET") can be used to denote any possible attribute set.
  87.          9.4.8   The  object  classes  previously  mentioned  are  defined  in    9.4.8.1,
  88.           9.4.8.2.
  89.                Note - These are partial definitions: the object identifiers  are  actually
  90.          allocated for these object classes in Recommendation X.521 so  as  to  provide  a
  91.          single point of  allocation  of  these  object  identifiers  in  this  series  of
  92.          Recommendations.
  93.          9.4.8.1   The object class "Top" is defined as follows:
  94.                Top ::=
  95.                   OBJECT-CLASS
  96.                       MUST CONTAIN {ObjectClass}
  97.          9.4.8.2   The object class "Alias" is defined as follows:
  98.                Alias ::=
  99.                   OBJECT-CLASS
  100.                       SUBCLASS OF top
  101.                       MUST CONTAIN {aliasedObjectName}
  102.                Note 1 - The object class "Alias" does not  specify  appropriate  attribute
  103.          types for the RDN of an  alias  entry.  Administrative  Authorities  may  specify
  104.          subclasses of the class "Alias" which specify useful attribute types for RDNs  of
  105.          alias entries (see Recommendation X.521).
  106.                Note 2 - Entries of a subclass of the class "Alias" are alias entries.
  107.          9.5    Attribute type definition
  108.          9.5.1  The definition of an attribute type involves:
  109.                a)  assigning an object identifier to the attribute type:
  110.                b)  indicating or defining the attribute syntax for the attribute type;
  111.                c)  indicating whether an attribute of this type may have only one or  may
  112.                   have more than one value (recur).
  113.          9.5.2  The Directory ensures that the indicated  attribute  syntax  is  used  for
  114.          every attribute of this type. The Directory also ensures that attributes of  this
  115.          type will have one and only one value in entries if attributes of this  type  are
  116.          defined to have only one value.
  117.          9.5.3  The following ASN.1 macro  may  (but  need  not)  be  used  to  define  an
  118.          attribute type:
  119.                ATTRIBUTE MACRO   ::=
  120.                BEGIN
  121.                TYPENOTATION      ::= AttributeSyntax Multivalued | empty
  122.                VALUENOTATION     ::= value (VALUE OBJECT IDENTIFIER)
  123.                AttributeSyntax   ::=
  124.                   "WITH ATTRIBUTE-SYNTAX" SyntaxChoice
  125.                Multivalued             ::= "SINGLE VALUE"
  126.                                        |"MULTIVALUE" | empty
  127.                SyntaxChoice                  ::= value(ATTRIBUTE-SYNTAX)
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.                                                       Fascicle VIII.8 - Rec. X.501  PAGE13
  142.  
  143.                                  Constraint | type MatchTypes
  144.                Constraint              ::= "("ConstraintAlternative")" | empty
  145.                ConstraintAlternative   ::= StringConstraint | IntegerConstraint
  146.                StringConstraint  ::= "SIZE" "("SizeConstraint")"
  147.                SizeConstraint          ::= SingleValue | Range
  148.                SingleValue             ::= value(INTEGER)
  149.                Range              ::= value(INTEGER) ".." value
  150.                                        (INTEGER)
  151.                IntegerConstraint ::= Range
  152.                MatchTypes              ::= "MATCHES FOR" Matches | empty
  153.                Matches                 ::= Match Matches | Match
  154.                Match              ::= "EQUALITY" | "SUBSTRINGS" |
  155.                                        "ORDERING"
  156.                END
  157.                The correspondence between the  parts  of  the  definition,  as  listed  in
  158.           9.5.1, and the various pieces of the notation introduced by  the  macro,  is  as
  159.          follows:
  160.                a)  the object identifier assigned to the  attribute  type  is  the  value
  161.                   supplied in the value assignment of the MACRO;
  162.                b)  the attribute syntax for the attribute type is that identified by  the
  163.                   AttributeSyntax production. This either points to a separately  defined
  164.                   attribute syntax, or explicitly defines an attribute syntax  by  giving
  165.                   its ASN.1 type  and  matching  rules  (see    9.6).   If  a  separately
  166.                   identified  attribute  syntax  is  employed,  a  size  constraint   for
  167.                   underlying string types or a value range for an underlying integer type
  168.                   may optionally be indicated;
  169.                c)  the attribute is single valued if the MultiValued production is "SINGLE 
  170.                   VALUE", and may have one or more values  if  it  is  "MULTI  VALUE"  or
  171.                   empty.
  172.                Note  -  The  macro  is  used  in  defining  selected  attribute  types  in
  173.          Recommendation X.520.
  174.                Should the "empty" alternative  of  the  type  notation  be  selected,  the
  175.          resulting notation ("ATTRIBUTE") can be used to  denote  any  possible  attribute
  176.          type.
  177.          9.5.4  The attribute types identified in   7.3.3 which are known to and  used  by
  178.          the Directory for its own purposes are defined as follows:
  179.                ObjectClass ::= ATTRIBUTE
  180.                   WITH ATTRIBUTE-SYNTAX objectIdentifierSyntax
  181.                AliasedObjectName ::= ATTRIBUTE
  182.                   WITH ATTRIBUTE-SYNTAX distinguishedNameSyntax
  183.                   SINGLE VALUE
  184.                Note 1  -  These  are  partial  definitions:  the  object  identifiers  are
  185.          actually allocated for these attribute types in Recommendation  X.520  so  as  to
  186.          provide a single point of allocation of these object identifiers in  this  series
  187.          of Recommendations.
  188.                Note 2 - The attribute  syntaxes  referred  to  in  these  definitions  are
  189.          themselves defined in   9.6.5.
  190.          9.6    Attribute syntax definition
  191.          9.6.1  The definition of an attribute syntax involves:
  192.                a)  optionally, assigning an object identifier to the attribute syntax;
  193.                b)  indicating the data type, in ASN.1 of the attribute syntax;
  194.                c)  defining appropriate rules for matching a presented value with a target 
  195.                   attribute value held in the DIB.  None, some, or all of  the  following
  196.                   matching rules may be defined for a particular attribute syntax:
  197.                   i)  equality.  Applicable to any attribute syntax.  The presented value
  198.                       must conform to the data type of the attribute syntax;
  199.                   ii) substrings.  Applicable to any attribute syntax with a string  data
  200.                       type.  The presented value must be a sequence ("SEQUENCE OF"), each
  201.                       of whose elements conforms to the data type;
  202.                   iii)   ordering.  Applicable to any attribute syntax for which  a  rule
  203.                       can be defined that will allow a presented value to be described as
  204.                       less than, equal to, or greater than a target value. The  presented
  205.                       value must conform to the data type of the attribute syntax.
  206.          9.6.2  If no equality matching rule is defined, the Directory:
  207.  
  208.  
  209.  
  210.  
  211.  
  212.          PAGE14  Fascicle VIII.8 - Rec. X.501
  213.  
  214.                a)  treats values as attributes of this attribute syntax  as  having  type
  215.                   ANY, i.e. the Directory does not check that those values  conform  with
  216.                   the data type indicated for the attribute syntax;
  217.                b)  will not attempt to match presented values against  target  values  of
  218.                   such an attribute type.
  219.                Note - It follows that the Directory will not permit such an  attribute  to
  220.          be used in a distinguished name, nor allow for a specific value to be modified.
  221.          9.6.3  If an equality matching rule is defined, the Directory:
  222.                a)  treats values of attributes of this attribute syntax as having type ANY 
  223.                   DEFINED BY the data type indicated for the attribute syntax;
  224.                b)  will only match according to  the  matching  rules  defined  for  that
  225.                   attribute syntax;
  226.                c)  will only match a presented value of a suitable data type as specified
  227.                   in   9.6.1 c).
  228.          9.6.4  The following ASN.1 macro may, but need not, be used to  define  attribute
  229.          syntaxes:
  230.                ATTRIBUTE-SYNTAX MACRO ::=
  231.                BEGIN
  232.                TYPE NOTATION ::=  Syntax
  233.                                         MatchTypes | empty
  234.                VALUE NOTATION ::=
  235.                   value (VALUE OBJECT IDENTIFIER)
  236.                Syntax ::=  type
  237.                MatchTypes ::= "MATCHES FOR" Matches | empty
  238.                Matches ::= Match Matches | Match
  239.                Match ::= "EQUALITY" | "SUBSTRINGS" | "ORDERING"
  240.                END
  241.                The correspondence between the  parts  of  the  definition,  as  listed  in
  242.           9.6.1, and the various pieces of the notation introduced by  the  macro,  is  as
  243.          follows:
  244.                a)  the object identifier assigned to the  attribute  syntax  is  a  value
  245.                   supplied in the value assignment of the macro;
  246.                b)  the data type of the attribute syntax is that identified by the Syntax
  247.                   production, i.e. that following macro name;
  248.                c)  the defined matching rules are equality, if "EQUALITY" appears in  the
  249.                   MatchTypes production, substrings if "SUBSTRINGS" appears, and ordering
  250.                   if "ORDERING" appears.  If the production is empty,  then  no  matching
  251.                   rules are defined.
  252.                Should the "empty" alternative of the notation be selected, the resulting 
  253.          notation ("ATTRIBUTE - SYNTAX") can be used to denote any possible attribute 
  254.          syntax.
  255.                Note 1 - No support is provided in the  macro  for  actually  defining  the
  256.          matching rules themselves: this must be done by  natural  language  or  by  other
  257.          means.
  258.                Note 2 - The macro is used  in  defining  selected  attribute  syntaxes  in
  259.          Recommendation X.520.
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.                                                       Fascicle VIII.8 - Rec. X.501  PAGE13
  284.  
  285.          9.6.5  The attribute syntaxes used in    9.5.4  are  defined  in     9.6.5.1  and
  286.          9.6.5.2.
  287.                Note - These are partial definitions: the object identifiers  are  actually
  288.          allocated for these attribute syntaxes in Recommendation X.520 so as to provide a
  289.          single point of  allocation  of  these  object  identifiers  in  this  series  of
  290.          Recommendations.
  291.          9.6.5.1   ObjectIdentifierSyntax is defined as follows:
  292.                ObjectIdentifierSyntax ::=
  293.                   ATTRIBUTE-SYNTAX
  294.                       OBJECT IDENTIFIER
  295.                       MATCHES FOR EQUALITY
  296.                The matching rule for equality is inherent in the definition of  the  ASN.1
  297.          type object identifier.
  298.          9.6.5.2   DistinguishedNameSyntax is defined as follows:
  299.                DistinguishedNameSyntax ::=
  300.                   ATTRIBUTE-SYNTAX
  301.                       DistinguishedName
  302.                       MATCHES FOR EQUALITY
  303.                A presented distinguished name value is equal  to  a  target  distinguished
  304.          name value if and only if all of the following are true:
  305.                a)  the number of RDNs in each is the same;
  306.                b)  corresponding RDNs have the same number of AVAs;
  307.                c)  corresponding AVAs (i.e. those with identical attribute  types)   have
  308.                   attribute values which  match  for  equality  (in  such  a  match,  the
  309.                   attribute values take the same roles -  i.e.  as  presented  or  target
  310.                   value - as the distinguished name  which  contains  them  does  in  the
  311.                   overall match).
  312.          SECTION 3 - Security model
  313.          10     Security
  314.          10.1   The directory exists in an environment where various  authorities  provide
  315.          access to their fragment of the DIB. Such access shall be in conformance  to  the
  316.          security policy (see Recommendation X.509) of the security domain  in  which  the
  317.          fragment of the DIB exists.
  318.          10.2   Two specific components of a security policy are addressed here:
  319.                a)  the definition of an authorization policy;
  320.                b)  the definition of an authentication policy.
  321.          10.3   The definition of authorization in the context of the  Directory  includes
  322.          the methods to:
  323.                a)  specify access rights;
  324.                b)  enforce access rights (access control);
  325.                c)  maintain access rights.
  326.          10.4   The definition of authentication in the context of the Directory  includes
  327.          the methods to verify:
  328.                a)  the identity of DSAs and directory users;
  329.                b)  the identity of the origin of received information at an access point.
  330.                The integrity of received information is a local matter  and  shall  be  in
  331.          conformance to the security policy in force.
  332.          10.5   This Recommendation does not define a Security Policy.
  333.          10.6   Annex F describes guidelines for specifying access rights.
  334.          10.7   Recommendation X.509 defines authentication procedures. The  DAP  and  DSP
  335.          may provide strong authentication of the initiator by the signing of the request,
  336.          data integrity of the request by signing of the request, strong  authentification
  337.          of the responder and data integrity of the result by signing the result. The  DAP
  338.          may provide simple authentication between a DUA and a DSA.  The DSP  may  provide
  339.          simple authentication between two DSAs.
  340.          10.8   Administrative authorities of applications which make use of the Directory
  341.          can use their own security policy. The  directory  can  support  applications  by
  342.          holding  authentication  information  (e.g.   distinguished   names,   passwords,
  343.          certificates)  about  communication  entities.  This  is  further  described   in
  344.          Recommendation X.509.
  345.                                                    ANNEX A
  346.                                      (to Recommendation X.501)
  347.                                       The mathematics of trees
  348.                This Annex is not part of the standard.
  349.                                             FIGURE - -T0704360-88
  350.  
  351.  
  352.  
  353.  
  354.          PAGE14  Fascicle VIII.8 - Rec. X.501
  355.  
  356.  
  357.                A tree is a set of points, called vertices, and a set  of  directed  lines,
  358.          called arcs; each arc a leads from a vertex V to a vertex Vw'. For  example,  the
  359.          tree in the Figure has seven vertices, labelled V1  through  V7,  and  six  arcs,
  360.          labelled a1 through a6.
  361.                Two vertices V and Vw' are said to  be  the  initial  and  final  vertices,
  362.          respectively, of an arc a from V to Vw'.For example, V2 and V3  are  the  initial
  363.          and final vertices, respectively, of arc a2. Several different arcs may have  the
  364.          same initial vertex, but not the same final vertex. For example, arcs a1  and  a3
  365.          have the same initial vertex, V1, but no two arcs in the  Figure  have  the  same
  366.          final vertex.
  367.                The vertex that is not the final vertex of any arc is often referred to  as
  368.          the root vertex, or even more informally as the "root" of the tree.  For example,
  369.          in the Figure, V1 is the root.
  370.                A vertex that is not the initial vertex of any arc  is  often  referred  to
  371.          informally as a leaf vertex, or even more informally, as a  "leaf"  of  the  tree
  372.          graph.  For example, vertices V3, V6, and V7 are leaves.
  373.                An oriented path from a vertex  V  to  a  vertex  Vw'  is  a  set  of  arcs
  374.          (a1, a2, ..., an)  (n w_  1) such that V is the initial vertex of arc a1, Vw'  is
  375.          the final vertex of arc an, and the final vertex of arc ak is  also  the  initial
  376.          vertex of arc ak+1 for 1 w_  k < n. For example, the oriented path from vertex V1
  377.          to vertex V6 is the set  of  arcs  (a3,  a4,  a5).  The  term  "path"  should  be
  378.          understood to denote an oriented path from the root to a vertex.
  379.                                                    ANNEX B
  380.                                      (to Recommendation X.501)
  381.                                       Object identifier usage
  382.                This Annex is part of the standard.
  383.                This Annex documents the upper reaches of the object identifier subtree  in
  384.          which all of the object identifiers assigned in this  series  of  Recommendations
  385.          reside.  It does so by providing an ASN.1 module  called  "UsefulDefinitions"  in
  386.          which all non-leaf nodes in the subtree are assigned names.
  387.                UsefulDefinitions {joint-iso-ccitt ds(5) modules(1)
  388.                                  usefulDefinitions(0)}
  389.                DEFINITIONS ::=
  390.                BEGIN
  391.                EXPORTS
  392.                   module,     serviceElement,     applicationContext,      attributeType,
  393.                       attributeSyntax, objectClass, 
  394.                   algorithm, abstractSyntax, attributeSet,
  395.                   usefulDefinitions, informationFramework, directoryAbstractService, 
  396.                   directoryObjectIdentifiers,                 algorithmObjectIdentifiers,
  397.                       distributedOperations, 
  398.                   protocolObjectIdentifiers,                      selectedAttributeTypes,
  399.                       selectedObjectClasses, 
  400.                   authenticationFramework, upperBounds,
  401.                   dap,dsp
  402.                   id-ac, id-ase, id-as, id-ot, id-pt;
  403.                ds          OBJECT IDENTIFIER ::=  {joint-iso-ccitt ds(5)}
  404.                -- categories of information object -- 
  405.          module             OBJECT IDENTIFIER ::= {ds 1}
  406.          serviceElement     OBJECT IDENTIFIER ::= {ds 2}
  407.          applicationContex  OBJECT IDENTIFIER ::= {ds 3}
  408.          t                  
  409.          attributeType      OBJECT IDENTIFIER ::= {ds 4}
  410.          attributeSyntax    OBJECT IDENTIFIER ::= {ds 5}
  411.          objectClass        OBJECT IDENTIFIER ::= {ds 6}
  412.          attributeSet       OBJECT IDENTIFIER ::= {ds 7}
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.                                                       Fascicle VIII.8 - Rec. X.501  PAGE13
  426.  
  427.          algorithm          OBJECT IDENTIFIER ::= {ds 8}
  428.          abstractSyntax     OBJECT IDENTIFIER ::= {ds 9}
  429.          object             OBJECT IDENTIFIER ::= {ds 10}
  430.          port               OBJECT IDENTIFIER ::= {ds 11}
  431.               -- modules --
  432.  
  433.          usefulDefinitions                 OBJECT IDENTIFIER ::= {module 0}
  434.          informationFramework              OBJECT IDENTIFIER ::= {module 1}
  435.          directoryAbstractService          OBJECT IDENTIFIER ::= {module 2}
  436.          distributedOperations             OBJECT IDENTIFIER ::= {module 3}
  437.          protocolObjectIdentifier          OBJECT IDENTIFIER ::= {module 4}
  438.          selectedAttributeTypes            OBJECT IDENTIFIER ::= {module 5}
  439.          selectedObjectClasses             OBJECT IDENTIFIER ::= {module 6}
  440.          authenticationFramework           OBJECT IDENTIFIER ::= {module 7}
  441.          algorithmObjectIdentifiers        OBJECT IDENTIFIER ::= {module 8}
  442.          directoryObjectIdentifiers        OBJECT IDENTIFIER ::= {module 9}
  443.          upperBounds                       OBJECT IDENTIFIER ::= {module 10}
  444.          dap                               OBJECT IDENTIFIER ::= {module 11}
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.          PAGE14  Fascicle VIII.8 - Rec. X.501
  497.  
  498.           dsp                               OBJECT IDENTIFIER ::= {module 12}
  499.           distributedDirectoryObjectIdent   OBJECT IDENTIFIER ::= {module 13}
  500.           ifiers                            
  501.                 -- synonyms --
  502.           id-ac          OBJECT IDENTIFIER ::= applicationContext
  503.           id-ase         OBJECT IDENTIFIER ::= serviceElement
  504.           id-as          OBJECT IDENTIFIER ::= abstractSyntax
  505.           id-ot          OBJECT IDENTIFIER ::= object
  506.           id-pt          OBJECT IDENTIFIER ::= port
  507.           END            
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.                                                        Fascicle VIII.8 - Rec. X.501  PAGE13
  568.  
  569.                                                    ANNEX C
  570.                                      (to Recommendation X.501)
  571.                                    Information framework in ASN.1
  572.                This Annex is part of the standard.
  573.                This Annex provides a summary of all of the ASN.1 type,  value,  and  macro
  574.          definitions contained in this Recommendation.  The  definitions  form  the  ASN.1
  575.          module "InformationFramework".
  576.                InformationFramework    {joint-iso-ccitt ds(5) modules(1)
  577.                                  informationFramework(1)}
  578.                DEFINITIONS ::=
  579.                BEGIN
  580.                EXPORTS
  581.                   Attribute, AttributeType, AttributeValue, AttributeValueAssertion,
  582.                   DistinguishedName, Name, RelativeDistinguishedName,
  583.                   OBJECT-CLASS,ATTRIBUTE,ATTRIBUTE-SET,ATTRIBUTE-SYNTAX,
  584.                   Top, Alias,
  585.                   ObjectClass, AliasedObjectName,
  586.                   ObjectIdentifierSyntax, DistinguishedNameSyntax;
  587.                IMPORTS
  588.                   selectedAttributeTypes, selectedObjectClasses
  589.                       FROM UsefulDefinitions {joint-iso-ccitt ds(5) modules(1)
  590.                                  usefulDefinitions(0)}
  591.                   top
  592.                       FROM SelecedObjectClasses selectedObjectClasses
  593.                   objectIdentifierSyntax,      distinguishedNameSyntax,      objectClass,
  594.                       aliasedObjectName
  595.                       FROM SelectedAttributeTypes selectedAttributeTypes;
  596.                -- attribute data types --
  597.                Attribute               ::=  SEQUENCE{
  598.                                              type     AttributeType
  599.                                              values SET OF AttributeValue
  600.                                              -- at least one value is required --}
  601.                AttributeType                 ::=  OBJECT IDENTIFIER
  602.                AttributeValue                ::=  ANY
  603.                AttributeValueAssertion ::=  SEQUENCE {AttributeType, AttributeValue}  
  604.                -- naming data types --
  605.                Name         ::=   CHOICE {-- only one possibility for now --
  606.                                        RDNSequence}
  607.                RDNSequence                   ::=   SEQUENCE OF
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.          PAGE14  Fascicle VIII.8 - Rec. X.501
  639.  
  640.                                                          RelativeDistinguishedName
  641.                DistinguishedName             ::=   RDNSequence
  642.                RelativeDistinguishedName           ::=   SET OF AttributeValueAssertion
  643.                -- macros --
  644.                OBJECT-CLASS MACRO      ::=
  645.                BEGIN
  646.                   TYPENOTATION         ::=   SubclassOf MandatoryAttributes 
  647.                                                    OptionalAttributes
  648.                   VALUENOTATION  ::=   value (VALUE OBJECT IDENTIFIER)
  649.                   SubclassOf                 ::=   "SUBCLASS OF" Subclasses | empty    
  650.                   Subclasses                 ::=   Subclass | Subclass "," Subclasses
  651.                   Subclass                   ::=   value (OBJECT-CLASS)
  652.                   MandatoryAttributes  ::=   "MUST CONTAIN {"Attributes"}" | empty
  653.                   OptionalAttributes         ::=   "MAY CONTAIN {"Attributes"}" | empty
  654.                   Attributes                 ::=   AttributeTerm | AttributeTerm "," 
  655.                                              Attributes
  656.                   AttributeTerm        ::=   Attribute | AttributeSet
  657.                   Attribute                  ::=   value(ATTRIBUTE)
  658.                   AttributeSet         ::=   value(ATTRIBUTE-SET)
  659.                END
  660.                ATTRIBUTE-SET-MACRO     ::=
  661.                   BEGIN
  662.                   TYPE NOTATION  ::=   "CONTAINS" "{Attributes"}" | empty
  663.                   VALUE NOTATION ::=   value(VALUEOBJECTIDENTIFIER)
  664.                   Attributes                  ::=    AttributeTerm  |  AttributeTerm  ","
  665.                       Attributes 
  666.                   AttributeTerm        ::=   Attribute | AttributeSet
  667.                   Attribute                  ::=   value(ATTRIBUTE)
  668.                   AttributeSet         ::=   value(ATTRIBUTE-SET)
  669.                   END
  670.                ATTRIBUTE MACRO         ::=
  671.                BEGIN
  672.                TYPENOTATION            ::=   AttributeSyntax Multivalued | empty
  673.                VALUENOTATION           ::=   value(VALUE OBJECT IDENTIFIER)
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.                                                       Fascicle VIII.8 - Rec. X.501  PAGE13
  710.  
  711.                AttributeSyntax         ::=   "WITH ATTRIBUTE-SYNTAX"  SyntaxChoice
  712.                Multivalued                   ::=   "SINGLE VALUE" | "MULTI VALUE" | empty
  713.                SyntaxChoice                        ::=   value(ATTRIBUTE-SYNTAX)
  714.                                              Constraint | type Match Types
  715.                Constraint                    ::=   "("ConstraintAlternative")" | empty
  716.                ConstraintAlternative         ::=   StringConstraint | IntegerConstraint
  717.                StringConstraint        ::=   "SIZE" "("SizeConstraint")"
  718.                SizeConstraint                ::=   SingleValue | Range
  719.                SingleValue                   ::=   value(INTEGER)
  720.                Range                    ::=   value(INTEGER) ".." value(INTEGER)
  721.                IntegerConstraint       ::=   Range
  722.                MatchTypes                    ::=   "MATCHES FOR" Matches | empty 
  723.                Matches                       ::=   Match Matches | Match
  724.                Match                    ::=   "EQUALITY" | "SUBSTRINGS" | "ORDERING"
  725.                END
  726.                ATTRIBUTE-SYNTAX MACRO ::=
  727.                BEGIN
  728.                   TYPENOTATION         ::=   Syntax MatchTypes | empty
  729.                   VALUENOTATION  ::=   value(VALUE OBJECT IDENTIFIER)
  730.                   Syntax               ::=   type
  731.                   MatchTypes           ::=   "MATCHES FOR "Matches | empty
  732.                   Matches                    ::=   Match Matches | Match
  733.                   Match                ::=   "EQUALITY" | "SUBSTRINGS" | "ORDERING"
  734.                END
  735.                -- object classes --
  736.                Top     ::=   OBJECT-CLASS
  737.                                  MUST CONTAIN {objectClass}
  738.                Alias  ::=   OBJECT-CLASS
  739.                                  SUBCLASS OF top
  740.                                  MUST CONTAIN {aliasedObjectName}  
  741.                -- attribute types --
  742.                ObjectClass       ::= ATTRIBUTE
  743.                                        WITH ATTRIBUTE-SYNTAX objectIdentifierSyntax
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.          PAGE14  Fascicle VIII.8 - Rec. X.501
  781.  
  782.                  AliasedObjectName ::= ATTRIBUTE
  783.                                          WITH ATTRIBUTE-SYNTAX distinguishedNameSyntax
  784.                                          SINGLE VALUE
  785.                  -- attribute syntaxes --
  786.                  ObjectIdentifierSyntax ::=
  787.                      ATTRIBUTE-SYNTAX
  788.                      OBJECT IDENTIFIER
  789.                      MATCHES FOR EQUALITY
  790.                  DistinguishedNameSyntax ::=
  791.                      ATTRIBUTE-SYNTAX
  792.                      DistinguishedName
  793.                      MATCHES FOR EQUALITY
  794.                  END
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.                                                        Fascicle VIII.8 - Rec. X.501  PAGE13
  852.  
  853.                                                    ANNEX D
  854.                                      (to Recommendation X.501)
  855.                                  Alphabetical index of definitions
  856.                This Annex is not part of the standard.
  857.                This  Annex  alphabetically  lists  all  of  the  terms  defined  in   this
  858.          Recommendation together with a  cross  reference  to  the    in  which  they  are
  859.          defined.
  860.  
  861.          A       access point                                      5
  862.                  Administration Directory Management Domain        5
  863.                  alias                                             8
  864.                  alias entry                                       6
  865.                  attribute                                         7
  866.                  attribute type                                    7
  867.                  attribute value                                   7
  868.                  attribute value assertion                         7
  869.          D       the Directory                                     5
  870.                  Directory entry                                   6
  871.                  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.          PAGE14  Fascicle VIII.8 - Rec. X.501
  923.  
  924.                  Directory Information Base (DIB)                  6
  925.                  Directory Information Tree (DIT)                  6
  926.                  Directory Management Domain (DMD)                 5
  927.                  Directory name                                    8
  928.                  Directory schema                                  9
  929.                  Directory System Agent (DSA)                      5
  930.                  Directory User Agent (DUA)                        5
  931.                  distinguished name                                8
  932.                  DIT Structure Rule                                9
  933.          E       entry                                             6
  934.          I       immediate(ly) subordinate                         6
  935.                  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.                                                       Fascicle VIII.8 - Rec. X.501  PAGE13
  994.  
  995.                   immediate(ly) superior                            6
  996.           N       name                                              8
  997.                   naming authority                                  8
  998.           O       object (of interest)                              6
  999.                   object class                                      6
  1000.                   object entry                                      6
  1001.           P       Private Directory Management Domain               5
  1002.                   purported name                                    8
  1003.           R       relative distinguished name                       8
  1004.           S       subordinate                                       6
  1005.                   superior                                          6
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.           PAGE14  Fascicle VIII.8 - Rec. X.501
  1065.  
  1066.                                                     ANNEX E
  1067.                                       (to Recommendation X.501)
  1068.                                          Name design criteria
  1069.                 This Annex is not part of the standard.
  1070.                 The information  framework  is  very  general,  and  allows  for  arbitrary
  1071.           variety of entries and attributes within the DIT. Since, as defined there,  names
  1072.           are closely related to paths through the DIT, this means that  arbitrary  variety
  1073.           in names is possible. This section suggests criteria  to  be  considered  in  the
  1074.           design of names. The appropriate criteria have been used in  the  design  of  the
  1075.           recommended name forms which are to be  found  in  Recommendation  X.521.  It  is
  1076.           suggested that the criteria also be used, where  appropriate,  in  designing  the
  1077.           names for objects to which the recommended name forms do not apply.
  1078.                 Presently, only one criterion is addressed: that of user-friendliness.
  1079.                 Note - Not all names need to be user-friendly.
  1080.           E.1    User-friendliness
  1081.                 Names with which human beings must deal directly should  be  user-friendly.
  1082.           A user-friendly name is one that takes the human user's point of  view,  not  the
  1083.           computer's.  It is  one  that  is  easy  for  people  to  deduce,  remember,  and
  1084.           understand, rather than one that is easy for computers to interpret.
  1085.                 The goal of user-friendliness can be  stated  somewhat  more  precisely  in
  1086.           terms of the following two principles:
  1087.                  -   A human being usually should be able to correctly  guess  an  object's
  1088.                      user-friendly name on the basis of information about the object that he
  1089.                      naturally possesses.  For example,  one  should  be  able  to  guess  a
  1090.                      business person's name given only the information  about  her  casually
  1091.                      acquired through normal business association.
  1092.                  -   When an object's name is ambiguously specified, the  Directory  should
  1093.                      recognize the fact rather than conclude that the  name  identifies  one
  1094.                      particular object.  For example, where two people have  the  same  last
  1095.                      name,  the  last   name   alone   should   be   considered   inadequate
  1096.                      identification of either party.
  1097.                 The following subgoals follow from the goal of user-friendliness:
  1098.                  a)  Names should not artificially remove natural ambiguities.  For example, 
  1099.                      if two people share the last name "Jones", neither should  be  required
  1100.                      to answer to "WJones"  or  "Jones2".  Instead,  the  naming  convention
  1101.                      should provide a user-friendly  means  of  discriminating  between  the
  1102.                      entities.  For example, it might require first name and middle  initial
  1103.                      in addition to last name.
  1104.                  b)  Names should admit  common  abbreviations  and  common  variations  in
  1105.                      spelling.  For  example,  if  one  is  employed  by  the  Conway  Steel
  1106.                      Corporation and the name of one's employer figures in one's  name,  any
  1107.                      of the names "Conway Steel Corporation", "Conway Steel Corp.",  "Conway
  1108.                      Steel", and "CSC"  should  suffice  to  identify  the  organization  in
  1109.                      question.
  1110.                  c)  In certain cases, alias names can be used to direct the search  for  a
  1111.                      particular entry, in order to be more user-friendly, or to  reduce  the
  1112.                      scope of a search.  The following example demonstrates the  use  of  an
  1113.                      alias name for such a purpose: as shown in Figure E-1/X.501, the branch
  1114.                      office in Osaka can also be identified with the name {C =  Japan,  L  =
  1115.                      Osaka, O = ABC, OU = Osaka-branch}.
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.                                                        Fascicle VIII.8 - Rec. X.501  PAGE13
  1136.  
  1137.                                         FIGURE E-1/X.501 - T0704370-88
  1138.  
  1139.                  d)  If names are multi-part, both the number of mandatory  parts  and  the
  1140.                      number of optional parts should be relatively small and  thus  easy  to
  1141.                      remember.
  1142.                  e)  If names are multi-part, the precise order in which those parts appear
  1143.                      should generally be immaterial.
  1144.                  f)  User-friendly names should not involve computer addresses.
  1145.                                                     ANNEX F
  1146.                                       (to Recommendation X.501)
  1147.                                             Access control
  1148.                 This Annex is not part of the standard.
  1149.           F.1    Introduction
  1150.                 Directory users are granted access to the information in  the  DIB  on  the
  1151.           basis of their access control rights in accordance with the access control policy
  1152.           in force protecting that information.
  1153.                 Access  Control  is  left  as  a   local   matter   in   this   series   of
  1154.           Recommendations.  However, it is recognized that  implementations  will  need  to
  1155.           introduce means of controlling access and that future versions of this series  of
  1156.           Recommendations are likely to define standardized means of creating,  maintaining
  1157.           and applying access control information.  This  Annex  describes  the  principles
  1158.           underlying access  control,  and  outlines  two  possible  approaches  to  access
  1159.           control.
  1160.           F.2    Principles
  1161.                 The two principles that will guide  the  establishment  of  procedures  for
  1162.           managing access control are:
  1163.                  a)  there must be means of protecting information in  the  Directory  from
  1164.                      unauthorized  detection,  examination,  and   modification,   including
  1165.                      protecting the DIT from unauthorized modification;
  1166.                  b)  the information required to determine a user's  rights  to  perform  a
  1167.                      given operation must be available to the DSA(s) involved in  performing
  1168.                      the operation in order to avoid further  remote  operations  solely  to
  1169.                      determine these rights.
  1170.           F.3    Protected items
  1171.                 These levels of protection are presently identified:
  1172.                  a)  protection of an entire subtree of the DIT;
  1173.                  b)  protection of an individual entry;
  1174.                  c)  protection of an entire attribute within an entry;
  1175.                  d)  protection of selected instances of attribute values.
  1176.           F.4    Access categories
  1177.                 A need for at least five categories of access is envisaged.  If  access  is
  1178.           not granted to a protected item in any category, then the directory in so far  as
  1179.           is possible responds as though their protected item did not exist at all.
  1180.                 The categories of access are shown in Table  F-1/X.501.  The  items  column
  1181.           denotes whether the item that can be so protected is an entry (E),  an  attribute
  1182.           (A) or both (EA).
  1183.                                                 TABLE F-1/X.501
  1184.                                                Access categories
  1185.             Category      Items                          Description
  1186.              detect         A      Allows the protected item to be detected.
  1187.             compare        A      Allows a presented value to be compared to the 
  1188.                                    protected item.
  1189.               read          A      Allows the protected item to be read.
  1190.              modify         A      Allows the protected item to be updated.
  1191.            add/delete   
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.           PAGE14  Fascicle VIII.8 - Rec. X.501
  1207.  
  1208.                           EA     Allows the creation and deletion of new components 
  1209.                                   (attributes or attribute values) within the protected 
  1210.                                   item.
  1211.             naming         E      Allows the modification of the Relative Distinguished 
  1212.                                   Name of, and the creation and deletion of, entries 
  1213.                                   which are immediately subordinate to the protected 
  1214.                                   entry.
  1215.                F.5    Determination of access rights
  1216.                One scheme for managing access  control  associates  with  every  protected
  1217.          item, either explicitely or implicitely, a list of access rights.  Each  item  in
  1218.          such a list pairs a set of users with a set of access categories.
  1219.                Determining if a user is in one  (or  more)  of  the  noted  sets  must  be
  1220.          possible from the information  supplied  with  the  request  -  either  from  the
  1221.          authenticated identity and credentials of the user as supplied in BIND,  or  from
  1222.          information carried in the operation argument.
  1223.                There at least two possibilities:
  1224.                a)  The sets are described in terms of the distinguished names of the users 
  1225.                   they identify  either  the  distinguished  name  of  the  user  or  the
  1226.                   distinguished name of a superior with a flag specifying that the entire
  1227.                   subtree is included.
  1228.                b)  The sets give only a capability,  and  implicitly  include  all  users
  1229.                   having  that  capability.  This  scheme  requires  that   such   users'
  1230.                   capability be  available  locally  or  else  carried  in  the  BIND  or
  1231.                   operation  argument.  The  latter  may  require  an  extension  to  the
  1232.                   currently defined protocols.
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.                                                       Fascicle VIII.8 - Rec. X.501  PAGE13
  1278.  
  1279.